#ifndef MODEL_H
#define MODEL_H

#include "MbMatrix.h"
#include "tree.h"

class Alignment;
class MbRandom;
class Settings;
//class Tree;

typedef struct Model {
                Alignment   *alignmentPtr;
				 MbRandom   *ranPtr;
				 Settings   *settingsPtr;
					 Tree   *tree;
					  int   numNodes;
				   double   *cls;
				   double   ***clsPtr;
		 MbMatrix<double>   *P;

} Model;

void makeModel(Model *thisModel, Alignment *ap, MbRandom *rp, Settings *sp);
double calculateLikelihood(Model * thisModel);
void deleteModel(Model * thisModel);


#endif

